﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Entidad;
using System.Data;
using System.Data.SqlClient;

namespace DAO
{
    public class EjemplarDAO : InformeRestauracionInterface
    {
        private DAO_v2 dao;
        public List<EjemplarEnt> BuscarEjemplares(int? codigo)
        {
            dao = new DAO_v2();
            List<String> columnas = new List<String>();
            List<String> parametros = new List<String>();
            List<Object> datos = new List<Object>();
            columnas.Add("id_Libro");
            columnas.Add("id_Ejemplar");
            columnas.Add("precio");
            columnas.Add("id_Estado");
            columnas.Add("codigo");
            if (codigo.HasValue)
            {
                parametros.Add("codigo");
                datos.Add(codigo);
            }
            SqlConnection con = new SqlConnection(DAO_v2.MiCadenaConexion());
            List<EjemplarEnt> resultado = null;
            try
            {
                con.Open();
                SqlCommand cmd = dao.Buscar("Ejemplar", columnas, parametros, datos);
                cmd.Connection = con;
                SqlDataReader dr = cmd.ExecuteReader();
                resultado = new List<EjemplarEnt>();
                while (dr.Read())
                {
                    EjemplarEnt ejemplar = new EjemplarEnt();
                    ejemplar.ID_Ejemplar = int.Parse(dr["id_Ejemplar"].ToString());
                    ejemplar.ID_Libro = int.Parse(dr["id_Libro"].ToString());
                    ejemplar.ID_Estado = int.Parse(dr["id_Estado"].ToString());
                    ejemplar.Precio = double.Parse(dr["precio"].ToString());
                    ejemplar.Codigo = int.Parse(dr["codigo"].ToString());
                    resultado.Add(ejemplar);
                }
                dr.Close();
                return resultado;
            }
            catch(SqlException ex)
            {
                return null;
                throw new ApplicationException("Error al buscar ejemplares..");
            }
            finally
            {
                dao.CerrarConexion(con);
            }
        }

        public DataView BuscarRestauradores(long? cuil)
        {
            throw new NotImplementedException();
        }


        public DataView ObtenerInforme()
        {
            throw new NotImplementedException();
        }


        public DataView ObtenerInforme(String filtro)
        {
            throw new NotImplementedException();
        }


        public string OtenerFechaMasAntigua()
        {
            throw new NotImplementedException();
        }
    }
}
